function runAsync() {
  var p = new Promise(function(resolve, reject){
    //做一些异步操作
    setTimeout(function(){
      console.log('执行完成');
      resolve('随便什么数据');
    }, 2000);
  });
  return p;
}

runAsync1()
    .then(function(data){
      console.log(data);
      return runAsync2();
    })
    .then(function(data){
      console.log(data);
      //return runAsync3();
      //return '直接是数据'
    })
    .then(function(data){
      //console.log(data);
      console.log('last');
    });


function runAsync1(){
  var p = new Promise(function(resolve, reject){
    //做一些异步操作
    setTimeout(function(){
      console.log('异步任务1执行完成');
      resolve('随便什么数据1');
    }, 1000);
  });
  return p;
}
function runAsync2(){
  var p = new Promise(function(resolve, reject){
    //做一些异步操作
    setTimeout(function(){
      console.log('异步任务2执行完成');
      resolve('随便什么数据2');
    }, 2000);
  });
  return p;
}
function runAsync3(){
  var p = new Promise(function(resolve, reject){
    //做一些异步操作
    setTimeout(function(){
      console.log('异步任务3执行完成');
      resolve('随便什么数据3');
    }, 2000);
  });
  return p;
}

Promise.all([runAsync1(),runAsync2(),runAsync3()]).then((res)=>{
  console.log(res);
})